Как добавить иммунизацию в комплект транзакций FHIR? - PullRequest
0 голосов
/ 14 января 2019

Я скачал несколько комплектов пациентов DSTU2 с https://syntheticmass.mitre.org/download.html. Я пытаюсь загрузить данные на тестовый сервер FHIR. Мой код (с использованием fhir-net-api) проходит через несколько файлов и компилирует их в один пакет транзакций. Ниже приведен фрагмент кода, который создает пакет транзакций.

Проблема в том, что записи иммунизации не имеют элемента fullUrl. Я думал, что пропустил шаг в моем цикле, но согласно https://www.hl7.org/fhir/immunization.html, запись иммунизации даже не поддерживает элемент fullUrl.

Если я создаю собственного пациента с несколькими демографическими данными, процесс работает, поэтому я предполагаю, что мне нужно внести некоторые изменения в записи иммунизации, но я не могу найти примерный пакет транзакций, который включает данные иммунизации.

public Bundle ParseTestData(List<string> list) //File data as string in list
    {
        var parser = new FhirJsonParser();
        var parsedBundles = new List<Bundle>();
        var transactionBundle = new Bundle()
        {
            Id = "test-data-bundle",
            Type = Bundle.BundleType.Transaction
        };
        foreach (var str in list)
        {
            try
            {
                Bundle bundle = parser.Parse<Bundle>(str);
                parsedBundles.Add(bundle);
            }
            catch (Exception e){/*cut for brevity*/}
        }
        foreach (var bundle in parsedBundles)
        {
            foreach (var entry in bundle.Entry)
            {
                entry.Request = new Bundle.RequestComponent
                {
                    Method = Bundle.HTTPVerb.POST,
                    Url = "urn:uuid:" + Guid.NewGuid().ToString()
                };
                transactionBundle.Entry.Add(entry);
            }
        }
        return transactionBundle;
    }

Моя борьба здесь не с кодом C #. Я просто не знаю, как правильно структурировать эти данные в комплекте.

Вот немного JSON из исходного файла.

{
  "fullUrl": "urn:uuid:05374078-2d51-4c7e-a562-273b030ba019",
  "resource": {
    "id": "05374078-2d51-4c7e-a562-273b030ba019",
    "status": "finished",
    "class": "outpatient",
    "type": [
      {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "170258001"
          }
        ],
        "text": "Outpatient Encounter"
      }
    ],
    "patient": {
      "reference": "urn:uuid:0d88250d-63c6-4ce5-aedb-91d64fa09838"
    },
    "period": {
      "start": "2011-09-25T02:18:02-04:00",
      "end": "2011-09-25T03:18:02-04:00"
    },
    "serviceProvider": {
      "reference": "urn:uuid:a602f5c0-26a5-4288-b83d-39abc341757d"
    },
    "resourceType": "Encounter"
  }
},
{
  "resource": {
    "status": "completed",
    "date": "2011-09-25T02:18:02-04:00",
    "vaccineCode": {
      "coding": [
        {
          "system": "http://hl7.org/fhir/sid/cvx",
          "code": "08",
          "display": "Hep B, adolescent or pediatric"
        }
      ],
      "text": "Hep B, adolescent or pediatric"
    },
    "patient": {
      "reference": "urn:uuid:0d88250d-63c6-4ce5-aedb-91d64fa09838"
    },
    "wasNotGiven": false,
    "reported": false,
    "encounter": {
      "reference": "urn:uuid:05374078-2d51-4c7e-a562-273b030ba019"
    },
    "resourceType": "Immunization"
  }
},

1 Ответ

0 голосов
/ 14 января 2019

fullUrl живет в ресурсе Bundle, а не в иммунизации. Пакеты имеют массив элементов «entry». Каждая «запись» (для запроса транзакции) содержит элемент «fullUrl», «ресурс» и «запрос». Содержимое для иммунизации находится внутри элемента «ресурс». Вы можете увидеть пример здесь: http://build.fhir.org/bundle-transaction.json.html. (Просто прикрепите свой контент для иммунизации там, где находится содержимое пациента.)

...