get(); $specialities = Speciality::pluck('id', 'name')->toArray(); foreach ($organizations as $organization) { $response = Http::get('http://localhost:8001/temp/practitioners?code='.$organization->meta->KodeRS); foreach ($response->json()['practitioners'] as $practitioner) { $practitioner = json_decode(json_encode($practitioner)); if (!empty($practitioner->meta->NIK)) { $newPerson = Person::updateOrCreate([ 'nik' => $practitioner->meta->NIK ], [ 'nik' => $practitioner->meta->NIK, 'name' => $practitioner->doctor->name, 'gender' => $practitioner->doctor->gender, 'birth_date' => !empty($practitioner->meta->TanggalLahir) && $practitioner->meta->TanggalLahir != '0000-00-00' ? $practitioner->meta->TanggalLahir : null, ]); } else { $newPerson = Person::create([ 'name' => $practitioner->doctor->name, 'gender' => $practitioner->doctor->gender, 'birth_date' => !empty($practitioner->meta->TanggalLahir) && $practitioner->meta->TanggalLahir != '0000-00-00' ? $practitioner->meta->TanggalLahir : null, ]); } $newPerson->addresses()->create([ 'use' => 'both', 'type' => 'physical', 'text' => $practitioner->doctor->address, ]); $newPractitioner = Practitioner::updateOrCreate([ 'person_id' => $newPerson->id ],[ 'person_id' => $newPerson->id ]); $newPractitioner->metas()->create([ 'system' => 'default', 'type' => 'medical_treatment', 'value' => $practitioner->doctor->meta->MedicalTreatment ?? null, ]); $newPractitioner->metas()->create([ 'system' => 'default', 'type' => 'education', 'value' => $practitioner->doctor->meta->Education ?? null, ]); $newPractitioner->metas()->create([ 'system' => 'default', 'type' => 'award', 'value' => $practitioner->doctor->meta->Award ?? null, ]); $newPractitioner->metas()->create([ 'system' => 'default', 'type' => 'work_experience', 'value' => $practitioner->doctor->meta->WorkExperience ?? null, ]); $newPractitioner->metas()->create([ 'system' => 'primaya-his', 'type' => 'alias', 'value' => $practitioner->meta->Sapaan ?? null, ]); $newPractitioner->metas()->create([ 'system' => 'primaya-his', 'type' => 'Keilmuan', 'value' => $practitioner->meta->Keilmuan ?? null, ]); $newPractitioner->metas()->create([ 'system' => 'primaya-his', 'type' => 'description', 'value' => $practitioner->doctor->description ?? null, ]); $newPractitionerRole = PractitionerRole::create([ 'practitioner_id' => $newPractitioner->id, 'organization_id' => $organization->id, 'speciality_id' => $practitioner->speciality ? ($specialities[$practitioner->speciality->name] ?? null) : null, 'active' => 1, ]); if (empty($newPractitionerRole->speciality_id)) { $newPractitionerRole->metas()->updateOrCreate([ 'type' => 'speciality_code', ],[ 'system' => 'default', 'type' => 'speciality_code', 'value' => $practitioner->speciality->code ?? null, ]); $newPractitionerRole->metas()->updateOrCreate([ 'type' => 'speciality', ],[ 'system' => 'default', 'type' => 'speciality', 'value' => $practitioner->speciality->name ?? null, ]); $newPractitionerRole->metas()->updateOrCreate([ 'type' => 'speciality_image', ],[ 'system' => 'default', 'type' => 'speciality_image', 'value' => $practitioner->speciality->name ?? null, ]); } $newPractitionerRole->metas()->updateOrCreate([ 'type' => 'primaya-his', 'type' => 'DokterID', ],[ 'system' => 'primaya-his', 'type' => 'DokterID', 'value' => $practitioner->meta->DokterID ?? null, ]); } } } }