Spécification de l’interface STU3STU3 interface specification

Ceci est une préversion ou une fonctionnalité d'une publication anticipée.This is a preview or early release feature.

La configuration ou la reconfiguration d’un serveur FHIR pour l’utilisation de l’application Microsoft teams patients nécessite une compréhension des données auxquelles l’application doit accéder.Setting up or reconfiguring an FHIR server to work with the Microsoft Teams Patients app requires understanding what data the app needs to access. Le serveur FHIR doit prendre en charge les demandes POST à l’aide de bottes pour les ressources suivantes :The FHIR server must support POST requests using bundles for the following resources:

Notes

La ressource patient est la seule ressource obligatoire (sans que l’application ne se charge du tout); Néanmoins, nous vous conseillons de mettre en œuvre la prise en charge de toutes les ressources mentionnées ci-dessus pour une utilisation optimale de l’application Microsoft teams pour les utilisateurs finaux.The Patient resource is the only mandatory resource (without which the app will not load at all); However, it is recommended that the Partner implement support for all the above mentioned resources per specifications provided below for the best end-user experience with the Microsoft Teams Patients App.

Les requêtes à partir de l’application patients de Microsoft teams pour plusieurs ressources publient une offre (BATCH) de requêtes dans l’URL du serveur FHIR.Queries from the Microsoft Teams Patients app for more than one resource shall post a bundle (BATCH) of requests to the FHIR server's URL. Le serveur traitera chaque demande et renverra une offre de ressources correspondant à chaque demande.The server shall process each request and return a bundle of the resources matched by each request. Pour plus d’informations et d’exemples https://www.hl7.org/fhir/STU3/http.html#transaction, voir.For more information and examples, see https://www.hl7.org/fhir/STU3/http.html#transaction.

Instruction CapabilityCapability Statement

Voici les champs obligatoires obligatoires :These are the minimum required fields:

  1. LAISSERREST
    1. VeilleMode
    2. InteractionInteraction
    3. Ressource : typeResource: Type
    4. Sécurité : extension pour les URI OAuthSecurity: Extension for OAuth URIs
  2. FhirVersion (notre code nécessite cela pour comprendre la version à laquelle nous devons faire pivoter.)FhirVersion (Our code requires this to understand which version we should pivot to.)

Pour https://www.hl7.org/fhir/stu3/capabilitystatement.html plus d’informations sur ce jeu de champs, voir.See https://www.hl7.org/fhir/stu3/capabilitystatement.html for other details on this field set.

PatientPatient

Voici les champs requis au minimum, qui sont un sous-ensemble des champs du profil du patient Argonaut :Here are the minimum required fields, which are a subset of the Argonaut patient profile fields:

  1. Nom. fourniName.Given
  2. Name. FamilyName.Family
  3. PublicGender
  4. AnniversaireBirthDate
  5. NRM (identificateur)MRN (Identifier)

Outre les champs Argonaut, pour une bonne utilisation de l’utilisateur, l’application patients peut également lire les champs suivants :In addition to the Argonaut fields, for a great user experience the Patients app can also read the following fields:

  1. Name. useName.Use
  2. Nom. préfixeName.Prefix
  3. [GeneralPractitioner] : la référence GeneralPractitioner doit être incluse dans la ressource patient (champ d’affichage uniquement)[GeneralPractitioner] - The GeneralPractitioner reference should be included in the Patient resource (display field only)

Une recherche de ressource utilise la méthode POST à/patient/_search et les paramètres suivants :A resource search uses the POST method at /Patient/_search and the following parameters:

  1. IDid
  2. famille = (recherche tous les patients dont le nom de famille contient la valeur)family=(searches for all patients whose family name contains the value)
  3. fourni =<sous-chaîne>given=<substring>
  4. DateNaissance = (correspondance exacte)birthdate=(exact match)
  5. sexe = (valeurs faisant partie d’un compte d’administrateur-sexe)gender=(values being one of the administrative-gender)
  6. _nombre (nombre maximal de résultats à renvoyer)_count (maximum number of results that should be returned)
    La réponse doit contenir le nombre total d’enregistrements renvoyés comme résultat de la recherche et _du comptage qui seront utilisés par le PatientsApp pour limiter le nombre d’enregistrements renvoyés.The response should contain the total count of records returned as a result of the search and _count will be used by the PatientsApp to limit the number of records returned.
  7. identifiant =<NRM>identifier=<mrn>

L’objectif est de pouvoir Rechercher et filtrer un patient en procédant comme suit :The goal is to be able to search and filter for a patient by the following:

  • ID : il s’agit de l’ID de ressource dont se trouve chaque ressource dans FHIR.ID: This is the resource ID that every resource in FHIR has.
  • NRM : il s’agit de l’identificateur réel du patient que le personnel expérimenté connaîtait.MRN: This is the actual identifier for the patient that clinical staff would know. Nous comprenons que ce NRM est basé sur le type d’identificateur figurant à l’intérieur de la ressource d’identificateur dans FHIR.We understand this MRN is based on the type of identifier inside the identifier resource in FHIR.
  • NomName
  • AnniversaireBirthdate

Pour plus d’informations, reportez-vous à l’exemple suivant :See the following example of the call:


<span data-ttu-id="dfe56-154">Request : POST <fhir-Server>/patient/_search corps de la requête : fourni = Ruth&Family = Black</span><span class="sxs-lookup"><span data-stu-id="dfe56-154">Request: POST <fhir-server>/Patient/_search Request Body: given=ruth&family=black</span></span>

<span data-ttu-id="dfe56-155">Réponse : {"resourceType" : "bundle", "ID" : "<-ID>", "meta" : {"lastUpdated" : "2019-01-14T23:44:45.052 + 00:00"}, "tapez" : "searchset", "total" : 1, "Self", "URL" : « auto », « URL » : <fhir-Server>/patient/_search "}]," entrée " : [{" fullUrl " : <fhir-Server>/patient/<patient-ID>", "ressource" : {"resourceType" : "patient", "ID" : "<patient-ID>", "meta" : {"versionId" : "1", "lastUpdated" : "2017-10-18T18:32:37.000 + 00:00"}, "texte" : {"Status" : "generated", "div" : "</span><span class="sxs-lookup"><span data-stu-id="dfe56-155">Response: { "resourceType": "Bundle", "id": "<bundle-id>", "meta": { "lastUpdated": "2019-01-14T23:44:45.052+00:00" }, "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": <fhir-server>/Patient/_search" } ], "entry": [ { "fullUrl": <fhir-server>/Patient/<patient-id>", "resource": { "resourceType": "Patient", "id": "<patient-id>", "meta": { "versionId": "1", "lastUpdated": "2017-10-18T18:32:37.000+00:00" }, "text": { "status": "generated", "div": "</span></span><div><span data-ttu-id="dfe56-156">\n</span><span class="sxs-lookup"><span data-stu-id="dfe56-156">\n</span></span>        <p><span data-ttu-id="dfe56-157">Noir Ruth</span><span class="sxs-lookup"><span data-stu-id="dfe56-157">Ruth Black</span></span></p><span data-ttu-id="dfe56-158">\n</span><span class="sxs-lookup"><span data-stu-id="dfe56-158">\n</span></span>      </div><span data-ttu-id="dfe56-159">"}," identificateur " : [{" use " :" usuelle "," type " : {" codification " : [{" System " :"https://hl7.org/fhir/v2/0203"," code " :" Mr "," Display "," "userSelected" : false}], "texte" : "http://hospital.smarthealthit.org", "", "", "", "", "valeur" : "1234567"}], "actif" : vrai, "nom" : "" ";" ""; ""; ""; "" ";"</span><span class="sxs-lookup"><span data-stu-id="dfe56-159">" }, "identifier": [ { "use": "usual", "type": { "coding": [ { "system": "https://hl7.org/fhir/v2/0203", "code": "MR", "display": "Medical record number", "userSelected": false } ], "text": "Medical record number" }, "system": "http://hospital.smarthealthit.org", "value": "1234567" } ], "active": true, "name": [ { "use": "official", "family": "Black", "given": [ "Ruth", "C."</span></span>
<span data-ttu-id="dfe56-160">]}], "Telecom" : [{"système" : "téléphone", "valeur" : "800-599-2739", "utiliser" : "maison"}, {"système" : "téléphone", "valeur" : "800-808-7785", "utiliser" : "mobile"}, {"système" : "ruth.black@example.com" = "" valeur "femelle", "DateNaissance" : "1951-08-23", "adresse" : [{"utiliser" : "maison", "ligne" : ["26 South RdApt 22"], "ville" : "sapâtea", "État" : "OK", "CodePostal" : "74066", "Country" : "USA"}]), "Search" : {"mode" : "match"}})}</span><span class="sxs-lookup"><span data-stu-id="dfe56-160">] } ], "telecom": [ { "system": "phone", "value": "800-599-2739", "use": "home" }, { "system": "phone", "value": "800-808-7785", "use": "mobile" }, { "system": "email", "value": "ruth.black@example.com" } ], "gender": "female", "birthDate": "1951-08-23", "address": [ { "use": "home", "line": [ "26 South RdApt 22" ], "city": "Sapulpa", "state": "OK", "postalCode": "74066", "country": "USA" } ] }, "search": { "mode": "match" } } ] }</span></span>

<span data-ttu-id="dfe56-161">Demande : obtenez <fhir-Server>/patient/<patient-ID></span><span class="sxs-lookup"><span data-stu-id="dfe56-161">Request: GET <fhir-server>/Patient/<patient-id></span></span>

<span data-ttu-id="dfe56-162">Réponse : {"resourceType" : "patient", "ID" : "<patient-ID>", "identificateur" : [{"use" : "usuelle", "type" : {"codage" : [{"système" : "https://hl7.org/fhir/v2/0203", "code" : "Mr",}], "texte" : "le numéro de l’enregistrement médical"}, "valeur" : "1234567"}], "nom" : [{"utiliser" : "officiel", "famille" : "Adams", ""» : "Michel", "X."</span><span class="sxs-lookup"><span data-stu-id="dfe56-162">Response: { "resourceType": "Patient", "id": "<patient-id>", "identifier": [ { "use": "usual", "type": { "coding": [ { "system": "https://hl7.org/fhir/v2/0203", "code": "MR", } ], "text": "Medical record number" }, "value": "1234567" } ], "name": [ { "use": "official", "family": "Adams", "given": [ "Daniel", "X."</span></span> <span data-ttu-id="dfe56-163">]}], "sexe" : "mâle", "DateNaissance" : "1925-12-23",}</span><span class="sxs-lookup"><span data-stu-id="dfe56-163">] } ], "gender": "male", "birthDate": "1925-12-23", }</span></span>

Pour https://hl7.org/fhir/stu3/patient.html plus d’informations sur ce jeu de champs, voir.See https://hl7.org/fhir/stu3/patient.html for other details on this field set.

DéterminéeObservation

Il s’agit des champs obligatoires minimum, qui sont un sous-ensemble du profil de signes vitaux de Argonaut.These are the minimum required fields, which are a subset of the Argonaut Vital-Signs profile.

  1. Effective (heure de date ou période)Effective (date time or period)
  2. Code. Coding. codeCode.Coding.Code
  3. ValueQuantity. ValueValueQuantity.Value

Outre les champs Argonaut, pour une bonne utilisation de l’utilisateur, l’application patients peut également lire les champs suivants :In addition to the Argonaut fields, for a great user experience the Patients app can also read the following fields:

  1. Code. Coding. DisplayCode.Coding.Display
  2. ValueQuantity. UnitValueQuantity.Unit

Une recherche de ressource utilise la méthode GET et les paramètres suivants :A resource search uses the GET method and the following parameters:

  1. patient =<ID du patient>patient=<patient id>
  2. _sort = date_sort=-date
  3. Category (nous interrogerons « Category = vitaux-Sign-signes ») pour récupérer la liste des signes vitaux.category (we will query for "category=vital-signs") to retrieve the list of vital signs.

Reportez-vous à cet exemple de l’appel :Refer to this example of the call:


<span data-ttu-id="dfe56-178">Demande : obtenez <fhir-Server>/observation ? patient =<patient-ID>&catégorie = vitaux-signes</span><span class="sxs-lookup"><span data-stu-id="dfe56-178">Request: GET <fhir-server>/Observation?patient=<patient-id>&category=vital-signs</span></span>

<span data-ttu-id="dfe56-179">Réponse : {"resourceType" : "bundle", "ID" : "<-ID>", "type" : "searchset", "total" : 20, "entrée" : [{"ressource" : {"resourceType" : "observation", "ID" : "<-ID>", "category" : [{"code" : [{"System", "https://hl7.org/fhir/observation-category", "code" : "" code " : {" Coding " : [{" System " :"http://loinc.org"," code " :" 8867-4 "," display " :" heart_rate "}]}," effectiveDateTime " :" 2009-04-08T00:00:00-06:00 "," valueQuantity " : {" value " : 72,0," Unit " :" {temps} minute "," système " :"http://unitsofmeasure.org",}}},.</span><span class="sxs-lookup"><span data-stu-id="dfe56-179">Response: { "resourceType": "Bundle", "id": "<bundle-id>", "type": "searchset", "total": 20, "entry": [ { "resource": { "resourceType": "Observation", "id": "<resource-id>", "category": [ { "coding": [ { "system": "https://hl7.org/fhir/observation-category", "code": "vital-signs" } ], } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "heart_rate" } ] }, "effectiveDateTime": "2009-04-08T00:00:00-06:00", "valueQuantity": { "value": 72.0, "unit": "{beats}/min", "system": "http://unitsofmeasure.org", } } }, .</span></span>
    <span data-ttu-id="dfe56-180">.</span><span class="sxs-lookup"><span data-stu-id="dfe56-180">.</span></span>
    <span data-ttu-id="dfe56-181">.</span><span class="sxs-lookup"><span data-stu-id="dfe56-181">.</span></span>
  <span data-ttu-id="dfe56-182">] }</span><span class="sxs-lookup"><span data-stu-id="dfe56-182">] }</span></span>

Pour https://www.hl7.org/fhir/stu3/observation.html plus d’informations sur ce jeu de champs, voir.See https://www.hl7.org/fhir/stu3/observation.html for other details on this field set.

ConditionCondition

Voici les champs requis au minimum, qui sont un sous-ensemble du profil de condition Argonaut.Here's the minimum required fields, which are a subset of the Argonaut condition profile.

  1. Code. Coding [0]. 3DCode.Coding[0].Display

Outre les champs Argonaut, pour une bonne utilisation de l’utilisateur, l’application patients peut également lire les champs suivants :In addition to the Argonaut fields, for a great user experience the Patients app can also read the following fields:

  1. AssertedDateAssertedDate
  2. MinimalSeverity

Une recherche de ressource utilise la méthode GET et les paramètres suivants :A resource search uses the GET method and the following parameters:

  1. patient =<ID du patient>patient=<patient id>
  2. _count =<résultats maximum>_count=<max results>

Pour plus d’informations, reportez-vous à l’exemple suivant :See the following example of this call:


<span data-ttu-id="dfe56-194">Demande : obtenez <fhir-Server>/condition ? patient =<patient-ID>&_count = 10</span><span class="sxs-lookup"><span data-stu-id="dfe56-194">Request: GET <fhir-server>/Condition?patient=<patient-id>&_count=10</span></span>

<span data-ttu-id="dfe56-195">Réponse : {"resourceType" : "bundle", "ID" : "<-ID>", "type", "searchset", "total" : 2, "entry" : [{"Resource" : {"resourceType" = "condition", "ID" : "<-ID>", "code" : {"code"http://snomed.info/sct"," code " :" 185903001 "," Display " :" nécessite une immunisation de la grippe ",}]}," gravité " : {" codage " : [{" System " :"http://snomed.info/sct"," code " :" 24484000 "," Display " :" assertedDate "}}," " :" 2018-04-04 "}};</span><span class="sxs-lookup"><span data-stu-id="dfe56-195">Response: { "resourceType": "Bundle", "id": "<bundle-id>", "type": "searchset", "total": 2, "entry": [ { "resource": { "resourceType": "Condition", "id": "<resource-id>", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "185903001", "display": "Needs influenza immunization", } ] }, "severity": { "coding": [ { "system": "http://snomed.info/sct", "code": "24484000", "display": "Severe" } ] }, "assertedDate": "2018-04-04" } }, .</span></span>
    <span data-ttu-id="dfe56-196">.</span><span class="sxs-lookup"><span data-stu-id="dfe56-196">.</span></span>
    <span data-ttu-id="dfe56-197">.</span><span class="sxs-lookup"><span data-stu-id="dfe56-197">.</span></span>
  <span data-ttu-id="dfe56-198">] }</span><span class="sxs-lookup"><span data-stu-id="dfe56-198">] }</span></span>

Pour https://hl7.org/fhir/stu3/condition.html plus d’informations sur ce jeu de champs, voir.See https://hl7.org/fhir/stu3/condition.html for other details on this field set.

ConnaîtreEncounter

Il s’agit des champs obligatoires minimum, qui sont un sous-ensemble des champs du profil de type rencontrent des États-Unis .These are the minimum required fields, which are a subset of the US Core Encounter profile "must have" fields).

  1. ÉtatStatus
  2. Tapez [0]. Code [0]. 3DType[0].Coding[0].Display

De plus, les champs suivants provenant du cœur Microsoft pour les États-Unis du profil « doivent prendre en charge » :In addition, the following fields from US Core Encounter profile's "must support" fields:

  1. Période. débutPeriod.Start
  2. Emplacement [0]. Emplacement. DisplayLocation[0].Location.Display

Une recherche de ressource utilise la méthode GET et les paramètres suivants :A resource search uses the GET method and the following parameters:

  1. patient =<ID du patient>patient=<patient id>
  2. _sort : DESC =<champ ex._sort:desc=<field ex. Date>date>
  3. _count =<résultats maximum>_count=<max results>

L’objectif est de pouvoir récupérer le dernier emplacement connu du patient.The goal is to be able to retrieve the patient's last known location. Chaque rencontre fait référence à une ressource d’emplacement.Each encounter references a location resource. La référence inclut également le champ d’affichage de l’emplacement.The reference shall also include the location's display field.

Pour https://hl7.org/fhir/stu3/encounter.html plus d’informations sur ce jeu de champs, voir.See https://hl7.org/fhir/stu3/encounter.html for other details on this field set.

AllergyIntoleranceAllergyIntolerance

Il s’agit des champs obligatoires minimum, qui sont un sous-ensemble du profil Argonaut AllergyIntolerance :These are the minimum required fields, which are a subset of the Argonaut AllergyIntolerance profile:

  1. Code. TextCode.Text
  2. Code. Coding [0]. 3DCode.Coding[0].Display
  3. ClinicalStatus/VerificationStatus (nous avons lu les deux)ClinicalStatus/VerificationStatus (we read both)

Outre les champs Argonaut, pour optimiser l’utilisation de l’application patients, l’application patients peut également lire le champ suivant :In addition to the Argonaut fields, for a great user experience the Patients app can also read the following field:

  1. AssertedDateAssertedDate
  2. Remarque. TextNote.Text
  3. RéactionReaction
    1. Substance (un élément de codage)Substance (one coding element)
    2. Manifeste (un élément de codage)Manifestation (one coding element)

Une recherche de ressource utilise la méthode GET et les paramètres suivants :A resource search uses the GET method and the following parameters:

  1. Patient = <ID du patient>Patient = <patient id>

Pour plus d’informations, reportez-vous à l’exemple suivant :See the following example of the call:


<span data-ttu-id="dfe56-230">Demande : obtenez <fhir-Server>/AllergyIntolerance ? patient =<patient-ID></span><span class="sxs-lookup"><span data-stu-id="dfe56-230">Request: GET <fhir-server>/AllergyIntolerance?patient=<patient-id></span></span>

<span data-ttu-id="dfe56-231">Réponse : {"resourceType" : "bundle", "ID" : "<-ID>", "type" : "searchset", "total" : 1, "entrée" : [{"ressource" : {"resourceType", "AllergyIntolerance", "ID" : "<-ID>", "clinicalStatus" : "actif", "verificationStatus" : "confirmé", "code" : {"http://rxnav.nlm.nih.gov/REST/Ndfrtcode" : "", "code" : "N0000175503", "Display" : "sulfonamide antibactérienne",}], "texte" : "sulfonamide antibactérienne"}, "assertedDate" : "2018-01-01T00:00:00-07:00", "réaction" : [{"se manifester" : [{"codage" : [{"système" : "http://snomed.info/sct", "code" : "271807003", "Display" : "Skin rash",}), "Text" : "Skin rash"}]</span><span class="sxs-lookup"><span data-stu-id="dfe56-231">Response: {   "resourceType": "Bundle",   "id": "<bundle-id>",   "type": "searchset",   "total": 1,   "entry": [     {       "resource": {         "resourceType": "AllergyIntolerance",         "id": "<resource-id>",         "clinicalStatus": "active",         "verificationStatus": "confirmed",         "code": {           "coding": [             {               "system": "http://rxnav.nlm.nih.gov/REST/Ndfrt",               "code": "N0000175503",               "display": "sulfonamide antibacterial",             }           ],           "text": "sulfonamide antibacterial"         },         "assertedDate": "2018-01-01T00:00:00-07:00",         "reaction": [           {             "manifestation": [               {                 "coding": [                   {                     "system": "http://snomed.info/sct",                     "code": "271807003",                     "display": "skin rash",                   }                 ],                 "text": "skin rash"               }             ],           }         ]       }     }   ] }</span></span>

Pour https://hl7.org/fhir/stu3/allergyintolerance.html plus d’informations sur ce jeu de champs, voir.See https://hl7.org/fhir/stu3/allergyintolerance.html for other details on this field set.

Demande de médicationMedication Request

Il s’agit des champs obligatoires minimum, qui sont un sous-ensemble du profil de demande de médicament principal pour les États-Unis:These are the minimum required fields, which are a subset of the US Core Medication Request profile:

  1. Médication. Display (Si référence)Medication.Display (if Reference)
  2. Médication. Text (si CodableConcept)Medication.Text (if CodableConcept)
  3. AuthoredOnAuthoredOn
  4. Demandeur. agent. DisplayRequester.Agent.Display

Outre les champs de base américaine, l’application patients peut également lire les champs suivants pour une utilisation optimale :In addition to the US Core fields, for a great user experience the Patients app can also read the following fields:

  1. DosageInstruction[..]. SynthèseDosageInstruction[..].Text
  2. SynthèseText

Une recherche de ressource utilise la méthode GET et les paramètres suivants :A resource search uses the GET method and the following parameters:

  1. patient =<ID du patient>patient=<patient id>
  2. _count =<résultats maximum>_count=<max results>

Pour https://www.hl7.org/fhir/medicationrequest.html plus d’informations sur ce jeu de champs, voir.See https://www.hl7.org/fhir/medicationrequest.html for other details on this field set.

ArticlesCoverage

Il s’agit des champs requis au minimum, qui ne sont pas couverts par les profils Argonaut ou les profils américains suivants :These are the minimum required fields, not covered by either US Core or Argonaut profiles:

  1. Regroupement d’au moins un élément avecGrouping, at least one element with
    1. GroupDisplayGroupDisplay
    2. PlanDisplayPlanDisplay
  2. DonnéePeriod
  3. SubscriberIdSubscriberId

Une recherche de ressource utilise la méthode GET et les paramètres suivants :A resource search uses the GET method and the following parameters:

  1. Patient = <ID du patient>Patient = <patient id>

Pour https://hl7.org/fhir/stu3/coverage.html plus d’informations sur ce jeu de champs, voir.See https://hl7.org/fhir/stu3/coverage.html for other details on this field set.