¡Hola Comunidad!
Este artículo muestra cómo crear Pacientes y Recursos de Observación de Pacientes mediante el uso de la aplicación iris-fhir-client.
Recomiendo leer mi primer artículo sobre esta aplicación y ver el vídeo de Youtube antes de continuar.
¡Empezamos!
1-Crear Recurso de Paciente
La siguiente función CreatePatient () de dc.FhirClient se puede usar para crear recursos de pacientes:
ClassMethod CreatePatient(givenName As %String, familyName As %String, birthDate As %String,gender As %String)
la función requiere giveName,failyName,birthDate y gender para crear el Recurso de Paciente
el siguiente comando creará Patient
do ##class(dc.FhirClient).CreatePatient("PatientGN","PatientFN","2000-06-01","male")
Esta es la función de python en el archivo irisfhirclient.py que creará el paciente
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")
PythonPython
2- Crear Recurso de Observación del Paciente
Vamos a crear Observación contra nuestro Recurso de Paciente recién creado
La siguente función CreateObservatoin() de dc.FhirClient se puede usar para crear Observaciones de pacientes
ClassMethod CreateObservation(patientId As %String, loincCode As %String, ObrCategory As %String, ObrValue As %Integer, ObrUOM As %String, effectiveDate As %String)
Parámetros
- patientId es el id del paciente
- LioncCode es el Código de Lionc. Puedes ver más detalles aquí
- ObrCategory es la Categoría de Observación. Puedes ver más detalles aquí
- ObrValue es el Valor de Observación
- ObrUOM es la Unidad de Observación
- EffectiveDate
El siguiente comando creará la observación de signos vitales del paciente
do ##class(dc.FhirClient).CreateObservation("8111","8310-5","vital-signs",96.8,"degF","2022-01-22")
Vamos a hacer una lista de las observaciones de los pacientes
do ##class(dc.FhirClient).GetPatientResources("Observation","8111")
Esa es la función de python en el archivo irisfhirclient.py que creará el paciente
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")
PythonPython
Espero que os resulte útil.