Article
· Sept 23, 2022 4m de lecture

Création de Patient et d'Observations de Patient en utilisant l'application iris-fhir-client

Bonjour la communauté,

Cet article montre comment créer des ressources pour le patient et l'observation du patient en utilisant l'application iris-fhir-client .
image

Je recommande de lire mon premier article sur cette application et de regarder le Video Youtube avant de continuer.

Donc commençons

1-Création d'une Ressource Patient

La fonction CreatePatient() de dc.FhirClient ci-dessous peut être utilisée pour créer une Ressource Patient

ClassMethod CreatePatient(givenName As %String, familyName As %String, birthDate As %String,gender As %String)

La fonction nécessite giveName, failyName, birthDate et sex pour créer la Resource Patient
La commande ci-dessous créera le Patient

do ##class(dc.FhirClient).CreatePatient("PatientGN","PatientFN","2000-06-01","male")

image

Voici la fonction python dans le fichier irisfhirclient.py qui va créer le patient

import json
from fhirpy import SyncFHIRClient
from tabulate import tabulate
from fhirpy.base.searchset import Raw
import requests

def CreatePatient(givenName,familyName,birthDate,gender,url,api_key):
    headers = {"Content-Type":contentType,"x-api-key":api_key}
    client = SyncFHIRClient(url = url, extra_headers=headers)
    
    patient = client.resource("Patient")
    patient['name'] = [
        {
            'given': [givenName],
            'family': familyName,
            'use': 'official'
        }
    ]

    patient['birthDate'] = birthDate
    patient['gender'] = gender
    try:
        patient.save()
    except Exception as e:
        print("Error while creating Patient:" +str(e))       
        return
    print("Patient Created Successfully")    

 

2- Création d'une ressource pour l'observation des patients

 

Créons une Observation sur notre ressource patient nouvellement créée

La fonction CreateObservatoin() de dc.FhirClient ci-dessous peut être utilisée pour la Création des observations de patients
ClassMethod CreateObservation(patientId As %String, loincCode As %String, ObrCategory As %String, ObrValue As %Integer, ObrUOM As %String, effectiveDate As %String)

Paramètres

  • patientId est l'identifiant du patient
  • LioncCode est le Code Lionc, les détails sont présentés ici
  • ObrCategory est une catégorie d'observation, les détails sont disponibles ici
  • ObrValue est la valeur d'observation
  • ObrUOM est l'unité d'observation
  • EffectiveDate

La commande ci-dessous créera l'observation des Signes Vitaux du patient

do ##class(dc.FhirClient).CreateObservation("8111","8310-5","vital-signs",96.8,"degF","2022-01-22")

image

Énumérons les observations des patients

do ##class(dc.FhirClient).GetPatientResources("Observation","8111")

image

Voici la fonction python dans le fichier irisfhirclient.py qui va créer le patient

import json
from fhirpy import SyncFHIRClient
from tabulate import tabulate
from fhirpy.base.searchset import Raw
import requests

#Function to create Patient Observation
def CreateObservation(patientId,loincCode,ObrCategory,ObrValue,ObrUOM,effectiveDate,url,api_key):
    headers = {"Content-Type":contentType,"x-api-key":api_key}
    client = SyncFHIRClient(url = url, extra_headers=headers)
    observation = client.resource(
    'Observation',
    status='preliminary',
    category=[{
        'coding': [{
            'system': 'http://hl7.org/fhir/observation-category',
            'code': ObrCategory
        }]
    }],
    code={
        'coding': [{
            'system': 'http://loinc.org',
            'code': loincCode
        }]
    })
    observation['effectiveDateTime'] = effectiveDate
       
    observation['valueQuantity'] = {
    'system': 'http://unitsofmeasure.org',
    'value': ObrValue,
    'code': ObrUOM
    }
    
    #find the patient
    patient = client.resources('Patient').search(_id=patientId).first()
    observation['subject'] = patient.to_reference()
    
    try:
        observation.save()
    except Exception as e:
        print("Error while creating observation :"+ str(e))       
        return
    print("Patient Observation Created Successfully")

C'est comme ça

Si vous avez trouvé cette application utile, merci de voter pour mon application.

Merci!

Discussion (0)3
Connectez-vous ou inscrivez-vous pour continuer