2017-01-24 11 views
3

Scheduleリソースにカスタム拡張を追加する場合に追加したいと考えています。 私のアプリでは、スケジュールは訪問動機(理由)を持っています。私は分類された予定/遭遇の理由のリストがあることを知っていますが、私は私のものを使用したいと思います。FHIR:カスタム拡張を追加する

私はこのようなものがあります:私はこの部分についてはよく分からない

{ 
    "resourceType":"Schedule", 
    "identifier":"logical_id", 
    "type":"schedule_speciality", 
    "actor":{ 
    "practioner_id":"identifier", 
    "practioner_name":"practioner name" 
    }, 
    "external_id":{ 
    "extension":[ 
     { 
     "url":"http://api.test.com/fhir/schedule/external_id", 
     "valueIdentifier":"external_id" 
     } 
    ] 
    }, 
    "visit_motives":{ 
    "extension":[ 
     { 
     "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
     "valueString":"vist_motive1" 
     }, 
     { 
     "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
     "valueString":"vist_motive2" 
     }, 
     { 
     "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
     "valueString":"vist_motive3" 
     } 
    ] 
    }, 
    "practice_id":{ 
    "extension":[ 
     { 
     "url":"https://api.test.com/fhir/schedule/practice_id", 
     "valueIdentifier":"practice_id" 
     } 
    ] 
    } 
} 

を:

"visit_motives":{ 
    "extension":[ 
     { 
     "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
     "valueString":"vist_motive1" 
     }, 
     { 
     "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
     "valueString":"vist_motive2" 
     }, 
     { 
     "url":"https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
     "valueString":"vist_motive3" 
     } 
    ] 
    } 

は拡張子をこのように追加することが正しいですか?特定のスケジュールには常に複数の訪問動機があるので、それらをリストアップする必要があります。

"visit_motives": { 
      "coding": [ 
      { 
       "system": "https://api.test.com/fhir/ValueSet/schedule#visit_motives", 
       "code": "visit_motive1" 
      } 
      ] 
     } 

1正しいものかは、私は間違っている:

は、私はまた、物事のこの種を見たことがありますか?

答えて

3

はここにいくつかの問題があります。スケジュール上の「理由」をキャプチャするために奇妙に思える

  1. 。スケジュールは、特定の臨床医やクリニック、または他のリソースが利用可能なときに表示されます。例えば。 "スミス博士は月曜日から水曜日/金曜日の午後1時から4時までの予定を取る"。もしあなたがリソース上の理由を捉えるならば、「スミス博士はなぜスケジュールを持っているのですか?典型的には、個々のアポイントメントについて理由が取り込まれます。これは計画された訪問のために特定のスロットを予約するリソースです。また、アポイントメントには、自分のコードを自由に使用したり、テキストを送るだけの理由から、すでに要素があります。

  2. 識別子を伝達する拡張機能がありますが、スケジュールにはすでに識別子の要素があります。標準要素の代わりに拡張機能を使用する理由「システム」および/または「タイプ」コンポーネントを使用して、さまざまな種類の識別子を区別することができます。

  3. あなたは「識別子」、「タイプ」、「名前」、などのように単純な文字列を送っている - しかし、あなたは

  4. 俳優がある子要素を通信する必要があるので、彼らは、複雑なデータ型をしていますReferenceタイプの - それはあなたがPractitionerリソースを指す必要があることを意味します。プロパティをインラインで送信することはできません。 (PractitionerがScheduleのコンテキスト内にのみ存在する場合は、内部参照を使用する「包含」アプローチを使用できますが、包含はこのユースケースで意味をなさないようです。

  5. URLあなたの拡張機能が正しくないValueSetを含んでいます - 拡張機能はすべて構造体定義です。すべての拡張機能のプロパティ名は「拡張子」です.URLで区別すると、構文は次のようになります。

{ 
    "resourceType":"Schedule", 
    "id":"logical_id", 
    "extension": [ 
    { 
     "url":"https://api.test.com/fhir/StructureDefinition/schedule-visit_motive", 
     "valueString":"vist_motive1" 
    }, 
    { 
     "url":"https://api.test.com/fhir/StructureDefinition/schedule-visit_motive", 
     "valueString":"vist_motive2" 
    }, 
    { 
     "url":"https://api.test.com/fhir/StructureDefinition/schedule-visit_motives, 
     "valueString":"vist_motive3" 
    } 
    ], 
    "identifier": [ 
    { 
     "system": http://api.test.com/fhir/NamingSystem/external_id", 
     "value": "external_id" 
    } 
    { 
     "system": http://api.test.com/fhir/NamingSystem/practice_id", 
     "value": "practice_id" 
    } 
    ] 
    "type": { 
    "coding": { 
     "system": "http://somewhere.org/fhir/CodeSystem/specialties", 
     "code": "schedule_speciality" 
    }, 
    "text": "Some text description of specialty" 
    }, 
    "actor":{ 
    "reference": "http://myserver.org/fhir/Practitioner/12345" 
    "display": "Dr. smith" 
    } 
} 
+0

まずは詳細な回答ありがとうございます! 1.理由は私のアプリのスケジュールにリンクされています。スケジュールは理由リストから外れた予定を持つことはできません。また、私のAPIを使用している人がスケジュールをサポートする理由を知る必要があります。 2.それを得ました。 3.私の間違い、私は今それを理解する。 4.それは? 5.OK、それを得た。 6。パーフェクト、それはまさに私がここに来たものですが、もっと多くの情報を提供しました。ありがとうございました! – user2462805

+0

スロットレベルで理由をキャプチャすることを検討することがあります。これは、どのような種類の予定を予約できるかを制約する場所の典型です。ただし、スケジュールレベルで本当に必要な場合は、拡張機能を正しく使用しています。非定型要件をサポートする方法を提供します。 –

+0

ここのユースケースはプロバイダブロックと考えています。例えば、スミス博士は、12歳から5歳までの既存の患者の診察を受けた8-10歳の「幼児」訪問のみを受け入れることを望むかもしれません。彼は12-2から新しい患者の訪問を受け入れることもできます(したがって、12-2は新しいものでも既存のものでもあります)。特定のプロバイダのSlotがサポートできるサービスを指定できるように、SlotのHealthcareServiceに0 .. *参照を掛けることは理にかなっているのでしょうか?(ScheduleとActorのHealthcareServiceリンクは両方とも1..1で、isnいずれかまたはシナリオに十分)。 – Cooper

関連する問題