Я пытаюсь сгенерировать вложенный файл JSON, используя R, и у меня возникают трудности при его настройке. По общему признанию я очень плохо знаком с JSON, так что концептуально я позади. Я был бы признателен за любую помощь, в том числе советы о местах (кроме R), которые облегчили бы эту задачу.
У меня есть 3 набора данных, с которыми я работаю - все подключены через ключи. По сути, моя цель - создать файл JSON, который содержит объекты пациента, с вложенными встречами и внутри этих встреч, вложенными линиями заявок.
Вот настройка в R:
patients <- data.frame (
PatientID = c('PID01','PID02'),
PatientName = c('John Doe','Jane Doe'),
PatientGroup = c('Group A','Group B')
)
encounters <- data.frame (
EncounterID = c('Enc01','Enc02','Enc03','Enc04','Enc05'),
PatientID = c('PID01','PID01','PID02','PID02','PID02'),
EncounterType = c('Outpatient','Outpatient','Inpatient','Outpatient','SNF')
)
encounterLines <- data.frame (
EncounterID = c(rep('Enc01',5),rep('Enc04',2)),
RevCodes = c('001','100','200','300','400','001','100'),
ClaimLine = c(seq(1:5),seq(1:2))
)
----------------------------------------
PatientID PatientName PatientGroup
----------- ------------- --------------
PID01 John Doe Group A
PID02 Jane Doe Group B
----------------------------------------
-----------------------------------------
EncounterID PatientID EncounterType
------------- ----------- ---------------
Enc01 PID01 Outpatient
Enc02 PID01 Outpatient
Enc03 PID02 Inpatient
Enc04 PID02 Outpatient
Enc05 PID02 SNF
-----------------------------------------
------------------------------------
EncounterID RevCodes ClaimLine
------------- ---------- -----------
Enc01 001 1
Enc01 100 2
Enc01 200 3
Enc01 300 4
Enc01 400 5
Enc04 001 1
Enc04 100 2
------------------------------------
Вывод JSON, который я ищу, выглядит следующим образом. Я пытался использовать jsonlite
, но, похоже, я не могу добиться какой-либо реальной тяги:
[
{
"PatientID": "PID01",
"PatientName": "John Doe",
"PatientGroup": "Group A",
"Encounters": [
{
"EncounterID": "Enc01",
"EncounterType": "Outpatient",
"ClaimLines": [
{
"ClaimLine": 1,
"RevenueCode": "001"
},
{
"ClaimLine": 2,
"RevenueCode": "100"
},
{
"ClaimLine": 3,
"RevenueCode": "200"
},
{
"ClaimLine": 4,
"RevenueCode": "300"
},
{
"ClaimLine": 5,
"RevenueCode": "400"
}
]
},
{
"EncounterID": "Enc02",
"EncounterType": "Outpatient"
}
]
},
{
"PatientID": "PID02",
"PatientName": "Jane Doe",
"PatientGroup": "Group B",
"Encounters": [
{
"EncounterID": "Enc03",
"EncounterType": "Inpatient"
},
{
"EncounterID": "Enc04",
"EncounterType": "Outpatient",
"ClaimLines": [
{
"ClaimLine": 1,
"RevenueCode": "001"
},
{
"ClaimLine": 2,
"RevenueCode": "100"
}
]
},
{
"EncounterID": "Enc05",
"EncounterType": "SNF"
}
]
}
]
Любая / вся помощь будет с благодарностью принята. Как я упоминал ранее, я не против использования инструментов за пределами R.
Спасибо!