Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor code to support single apk approach #1211

Merged
merged 109 commits into from
May 17, 2022
Merged
Show file tree
Hide file tree
Changes from 107 commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
fdd353b
Migrate to targetSDK 31
ellykits Mar 16, 2022
9757c7c
Merge branch 'main' into implement-generic-app-register
ellykits Mar 17, 2022
cdc7057
Implement generic register
ellykits Mar 22, 2022
46c7e37
Move navigation screens to NavigationScreen class
ellykits Mar 22, 2022
ce69fd2
Merge branch 'main' into implement-generic-app-register
ellykits Mar 22, 2022
f9d7b00
Refactor register pagination and filter
ellykits Mar 23, 2022
2705ab1
Fix outlined text design
ellykits Mar 23, 2022
5d68c24
Implement FHIRPath data extractor
ellykits Mar 25, 2022
324020f
Merge branch 'main' into implement-generic-app-register
ellykits Mar 25, 2022
fda4192
Display last sync time on side menu
ellykits Mar 25, 2022
af5ba08
Add language switcher action
ellykits Mar 25, 2022
68af3f0
Implement FhirTaskGenerator
ellykits Mar 28, 2022
b7c65d9
Refactor register client action
ellykits Mar 28, 2022
81acecc
Implement generic app profile
ellykits Mar 30, 2022
0ab1561
Rename data providers to data access objects
ellykits Mar 31, 2022
f026932
Careplan and task generation via StructureMap (#1174)
maimoonak Mar 31, 2022
5baf195
Rename UI data models
ellykits Mar 31, 2022
bbe5a1e
Move relevant UI packages to quest app module (#1178)
ellykits Mar 31, 2022
9bdb36c
Refactor register client implementation
ellykits Mar 31, 2022
97c7aea
Load saved binary resource questionnaire configs (#1177)
maimoonak Mar 31, 2022
d964e41
Open profile on list item click
ellykits Mar 31, 2022
ea71f23
Fix loading data to member profile
ellykits Mar 31, 2022
6619adc
Show progress dialog when loading configs
ellykits Apr 1, 2022
dfc68c2
Rename components package
ellykits Apr 1, 2022
de651e7
Rename components package
ellykits Apr 1, 2022
3561cfb
Start family profile implementation
ellykits Apr 1, 2022
dec6ebf
Merge branch 'main' into implement-generic-app-register
ellykits Apr 1, 2022
535836b
Format PersonalData UI
ellykits Apr 4, 2022
532ddb3
Rename PatientProfileData to ProfileData
ellykits Apr 5, 2022
71bb66d
Implement family member view component
ellykits Apr 5, 2022
dbf5c30
Rename event
ellykits Apr 5, 2022
52016b9
Implement FamilyDao (#1190)
maimoonak Apr 6, 2022
e1cf1d2
Merge branch 'main' into implement-generic-app-register
ellykits Apr 6, 2022
e54e6ec
Update family profile
ellykits Apr 7, 2022
3aad5d0
Implement AncDao (#1193)
maimoonak Apr 7, 2022
209a72a
Implement default profile DAO (#1194)
maimoonak Apr 7, 2022
0a7a9b5
Update family register row UI
ellykits Apr 8, 2022
7d9eaa9
Refactor family and anc models
ellykits Apr 8, 2022
4d43ca7
Update individual profile views
ellykits Apr 11, 2022
f2f8c27
Implement add member action
ellykits Apr 12, 2022
7cc1995
Fix ANC register UI
ellykits Apr 12, 2022
6772d2f
Populate extra personal data information
ellykits Apr 12, 2022
4068efa
Implement family profile bottomsheet
ellykits Apr 19, 2022
7d2623f
Implement action for opening family member task form
ellykits Apr 19, 2022
12d76b3
Resolve force app crash when wrong sync config provided
ellykits Apr 20, 2022
e632301
Implement app flavors (#1217)
ellykits Apr 21, 2022
a9fc879
Refactor household representation (#1216)
FikriMilano Apr 22, 2022
47aa32c
Add family member task (#1221)
FikriMilano Apr 22, 2022
6afbb78
Refactor generic function for launching questionnaires
ellykits Apr 25, 2022
b5278a4
Implement change family head action (#1228)
ellykits Apr 25, 2022
9fe3599
Activate device to device sync feature (#1229)
ellykits Apr 25, 2022
f31fc43
Refactor register data access objects (#1223)
roywanyaga Apr 25, 2022
dd4c17b
Fix loading register data (#1230)
ellykits Apr 25, 2022
90bbbdd
Fix app crash on API versions below 8
ellykits Apr 26, 2022
23834fc
Make login screen scrollable
ellykits Apr 26, 2022
c6356f6
Add member and household head to household (#1240)
dubdabasoduba Apr 27, 2022
4bcd725
Add member and household head to household (#1241)
dubdabasoduba Apr 27, 2022
8a801fe
Migrate measure reporting to quest app (#1242)
ellykits Apr 28, 2022
d73a477
1082 (P2P) implement sending receiving data (#1226)
Rkareko Apr 28, 2022
d6ce4e2
Implement family questionnaire (#1232)
aurangzaibumer Apr 28, 2022
5de6a42
Implement change family head functionality
RaaziaTarique Apr 28, 2022
9ca861c
Fix app crash
ellykits Apr 28, 2022
939f5ca
Activate in app reporting via config
ellykits Apr 28, 2022
0cbdd94
Add quick fix for showing register action for specific register
ellykits Apr 28, 2022
1c86785
:sparkles: Propagating the family name
dubdabasoduba Apr 28, 2022
c1b680a
Merge branch 'implement-generic-app-register' of github.com:opensrp/f…
dubdabasoduba Apr 28, 2022
f006f19
Update count on sync complete
ellykits Apr 28, 2022
4c4f94d
Remove deprecated environment variables
ndegwamartin Apr 28, 2022
8cfc1eb
Automation of Product Flavor releases via CI/CD
ndegwamartin Apr 28, 2022
7f0a882
Disable CI configurations for deprecated modules
ndegwamartin Apr 28, 2022
d37bcec
Fix build 💚
ndegwamartin Apr 28, 2022
451f853
Close drawer on click report
ellykits Apr 28, 2022
6edd2d3
React to sync state on sync complete (#1248)
ellykits Apr 28, 2022
eb7605a
Implement remove family and family member (#1236)
roywanyaga Apr 28, 2022
e1ead8e
Update CHANGELOG.md
ellykits Apr 28, 2022
74d5386
Merge branch 'main' into implement-generic-app-register
ellykits Apr 28, 2022
f84325f
:art: Update the task genration
dubdabasoduba Apr 28, 2022
870c4ef
Refactor p2p implementation (#1243)
ellykits May 4, 2022
05bd70f
Fix task color code; refresh data when activity in foreground (#1262)
ellykits May 6, 2022
294fec1
refactor remove family and member (#1263)
roywanyaga May 6, 2022
1421177
Implement family edit button (#1259)
roywanyaga May 6, 2022
073b4af
Fix loading task form
ellykits May 6, 2022
dd1d1d8
Rebase remote changes
ellykits May 6, 2022
c0555cc
Task plan worker fix | Missing Careplan handiling
maimoonak May 6, 2022
2ea1539
Enable loading new config by re-opening the app (#1261)
FikriMilano May 6, 2022
c8aead6
Filter tasks with status-READY only
maimoonak May 6, 2022
a30378d
Fix careplan not found bug
maimoonak May 6, 2022
8bfe1ed
Task completion feature
maimoonak May 6, 2022
5125a4b
Fix app crash on login
ellykits May 6, 2022
9e7f248
Implement ANC enrollment (#1267)
ellykits May 6, 2022
4458487
Merge branch 'implement-generic-app-register' into task-status-issue
ellykits May 6, 2022
7f1d8d5
Implement action for launching task form (#1266)
maimoonak May 6, 2022
c0bb407
Fix app crash
ellykits May 6, 2022
7947a2b
Merge branch 'other-fixes-task-implementation' into implement-generic…
ellykits May 6, 2022
b8b6e75
Implement task form action (#1268)
maimoonak May 6, 2022
22f7e28
Fix task color coding on patient profile(#1270)
maimoonak May 10, 2022
803954b
Implement family edit functionality (#1272)
roywanyaga May 11, 2022
e78a417
Refresh profile data
ellykits May 11, 2022
b6de4f7
Configure action icon and color
ellykits May 11, 2022
abe9891
Apply background color on patient profile
ellykits May 11, 2022
4f62830
Update ecbis version to v0.0.6
ellykits May 11, 2022
cb49103
reference configs for afyayangu app
roywanyaga May 12, 2022
fdac506
Merge branch 'main' into implement-generic-app-register
ellykits May 12, 2022
83879d1
Merge in remote changes
ellykits May 12, 2022
92a541e
Fix failing tests; Ignore failing to be deleted test
ellykits May 16, 2022
989d5c0
Merge branch 'main' into implement-generic-app-register
ellykits May 16, 2022
c06ade9
Remove unnecessary class TaskStatus
ellykits May 17, 2022
6b218bc
Merge branch 'main' of github.com:opensrp/fhircore into implement-gen…
FikriMilano May 17, 2022
2cb2111
Remove unnecessary code
ellykits May 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "android/p2p"]
path = android/p2p
url = git@github.com:opensrp/p2p.git
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Quest | Swahili localization
- Quest | Added G6PD Patient Details page to show G6PD Status and Test Results
- Quest | Add tasking list
- Quest | Added ability to reference Related Persons and Patients to the Groups representing families

- EIR | Added workflow configurations
- EIR | Add Adverse Events feature to log any reactions after the first dose of vaccine using Structure map
Expand All @@ -51,6 +52,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Engine | Fixed login authentication issue.
- Engine | Implement language switcher on profile page
- Engine | Add tasking abstraction
- Engine | Integrate Group resource for family representation
- Engine | Performance improvement when openning questionnaires and saving QRs

### Fixed
Expand Down
21 changes: 10 additions & 11 deletions android/anc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -81,19 +81,20 @@ android {
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '1.8'
jvmTarget = JavaVersion.VERSION_11.toString()
freeCompilerArgs = ['-Xjvm-default=compatibility']
}
buildFeatures {
compose true
viewBinding true
}
composeOptions {
kotlinCompilerExtensionVersion '1.0.4'
kotlinCompilerExtensionVersion '1.1.1'
}
packagingOptions {
exclude 'META-INF/ASL-2.0.txt'
Expand Down Expand Up @@ -139,12 +140,10 @@ android {
dependencies {
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.1.5"
implementation(project(":engine"))
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation deps.lifecycle.viewmodel
implementation deps.work.runtime
Expand All @@ -155,7 +154,7 @@ dependencies {
androidTestImplementation "com.google.dagger:hilt-android-testing:$hiltVersion"
kaptAndroidTest "com.google.dagger:hilt-android-compiler:$hiltVersion"

testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.4.2'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0'

testImplementation deps.junit5_api
testRuntimeOnly deps.junit5_engine
Expand Down
41 changes: 5 additions & 36 deletions android/anc/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.smartregister.fhircore.anc">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />

<application
android:name=".AncApplication"
android:allowBackup="true"
Expand All @@ -16,49 +13,21 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme.NoActionBar">
<activity
android:name="org.smartregister.fhircore.engine.ui.appsetting.AppSettingActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="org.smartregister.fhircore.engine.ui.login.LoginActivity"
android:exported="false" />
<activity
android:name="org.smartregister.fhircore.engine.ui.pin.PinLoginActivity"
android:exported="false" />
<activity
android:name="org.smartregister.fhircore.engine.ui.pin.PinSetupActivity"
android:exported="false" />
<activity
android:name=".ui.family.register.FamilyRegisterActivity"
android:exported="false" />
<activity
android:name=".ui.report.ReportHomeActivity"
android:exported="false" />
<activity android:name=".ui.family.register.FamilyRegisterActivity" />
<activity android:name=".ui.report.ReportHomeActivity" />
<activity
android:name=".ui.details.bmicompute.BmiQuestionnaireActivity"
android:exported="false"
android:theme="@style/AppTheme" />
<activity
android:name=".ui.family.removefamily.RemoveFamilyQuestionnaireActivity"
android:exported="false"
android:theme="@style/AppTheme" />
<activity
android:name=".ui.family.form.FamilyQuestionnaireActivity"
android:exported="false"
android:noHistory="true"
android:theme="@style/AppTheme" />
<activity
android:name="org.smartregister.fhircore.anc.ui.details.PatientDetailsActivity"
android:name=".ui.details.PatientDetailsActivity"
android:exported="false" />
<activity
android:name="org.smartregister.fhircore.engine.ui.questionnaire.QuestionnaireActivity"
android:exported="false"
android:theme="@style/AppTheme" />
<activity
android:name=".ui.anccare.encounters.EncounterListActivity"
android:exported="false" />
Expand All @@ -68,7 +37,7 @@

<service
android:name="org.smartregister.fhircore.engine.auth.AuthAndroidService"
android:exported="true">
android:exported="false">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import com.google.android.fhir.search.search
import javax.inject.Inject
import org.hl7.fhir.r4.model.Encounter
import org.smartregister.fhircore.anc.data.model.EncounterItem
import org.smartregister.fhircore.engine.data.domain.util.PaginationUtil
import org.smartregister.fhircore.engine.domain.util.PaginationConstant

class EncounterRepository @Inject constructor(val fhirEngine: FhirEngine) :
PagingSource<Int, EncounterItem>() {
Expand All @@ -43,8 +43,8 @@ class EncounterRepository @Inject constructor(val fhirEngine: FhirEngine) :
val encounters =
fhirEngine.search<Encounter> {
apply { filter(Encounter.SUBJECT, { value = "Patient/$patientId" }) }.getQuery()
from = nextPage * PaginationUtil.DEFAULT_PAGE_SIZE
count = PaginationUtil.DEFAULT_PAGE_SIZE
from = nextPage * PaginationConstant.DEFAULT_PAGE_SIZE
count = PaginationConstant.DEFAULT_PAGE_SIZE
}

val data =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ import javax.inject.Inject
import kotlinx.coroutines.withContext
import org.hl7.fhir.r4.model.Flag
import org.hl7.fhir.r4.model.Patient
import org.hl7.fhir.r4.model.ResourceType
import org.smartregister.fhircore.anc.data.family.model.FamilyItem
import org.smartregister.fhircore.anc.data.family.model.FamilyMemberItem
import org.smartregister.fhircore.anc.data.patient.PatientRepository
Expand All @@ -40,8 +39,8 @@ import org.smartregister.fhircore.anc.util.asCodeableConcept
import org.smartregister.fhircore.anc.util.filterBy
import org.smartregister.fhircore.anc.util.filterByPatientName
import org.smartregister.fhircore.anc.util.loadRegisterConfig
import org.smartregister.fhircore.engine.data.domain.util.PaginationUtil
import org.smartregister.fhircore.engine.data.domain.util.RegisterRepository
import org.smartregister.fhircore.engine.domain.util.PaginationConstant
import org.smartregister.fhircore.engine.util.DispatcherProvider
import org.smartregister.fhircore.engine.util.extension.asReference
import org.smartregister.fhircore.engine.util.extension.extractFamilyTag
Expand All @@ -52,7 +51,7 @@ class FamilyRepository
constructor(
@ApplicationContext val context: Context,
override val fhirEngine: FhirEngine,
override val domainMapper: FamilyItemMapper,
override val dataMapper: FamilyItemMapper,
val dispatcherProvider: DispatcherProvider,
val ancPatientRepository: PatientRepository
) : RegisterRepository<Family, FamilyItem> {
Expand All @@ -72,15 +71,15 @@ constructor(
filterByPatientName(query)

sort(Patient.NAME, Order.ASCENDING)
count = if (loadAll) countAll().toInt() else PaginationUtil.DEFAULT_PAGE_SIZE
from = pageNumber * PaginationUtil.DEFAULT_PAGE_SIZE
count = if (loadAll) countAll().toInt() else PaginationConstant.DEFAULT_PAGE_SIZE
from = pageNumber * PaginationConstant.DEFAULT_PAGE_SIZE
}

patients.map { p ->
val members = searchFamilyMembers(p.logicalId)

val familyServices = ancPatientRepository.searchCarePlan(p.logicalId, p.extractFamilyTag())
domainMapper.mapToDomainModel(Family(p, members, familyServices))
dataMapper.transformInputToOutputModel(Family(p, members, familyServices))
}
}
}
Expand All @@ -99,7 +98,7 @@ constructor(
.map {
val services = ancPatientRepository.searchCarePlan(it.logicalId)
val conditions = ancPatientRepository.searchCondition(it.logicalId)
domainMapper.toFamilyMemberItem(it, conditions, services)
dataMapper.toFamilyMemberItem(it, conditions, services)
}
.sortedBy {
var weight = 0
Expand Down Expand Up @@ -141,7 +140,7 @@ constructor(
newHead.link.clear()

val newHeadFlag = Flag()
newHeadFlag.id = ResourceType.Flag.generateUniqueId()
newHeadFlag.id = generateUniqueId()
newHeadFlag.status = Flag.FlagStatus.ACTIVE
newHeadFlag.subject = newHead.asReference()
newHeadFlag.code = familyTag.asCodeableConcept()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import com.google.android.fhir.FhirEngine
import com.google.android.fhir.get
import com.google.android.fhir.logicalId
import com.google.android.fhir.search.count
import com.google.android.fhir.search.getQuery
import com.google.android.fhir.search.search
import dagger.hilt.android.qualifiers.ApplicationContext
import java.util.Date
Expand Down Expand Up @@ -58,8 +57,8 @@ import org.smartregister.fhircore.anc.util.SearchFilter
import org.smartregister.fhircore.anc.util.filterBy
import org.smartregister.fhircore.anc.util.loadRegisterConfig
import org.smartregister.fhircore.anc.util.loadRegisterConfigAnc
import org.smartregister.fhircore.engine.data.domain.util.PaginationUtil
import org.smartregister.fhircore.engine.data.domain.util.RegisterRepository
import org.smartregister.fhircore.engine.domain.util.PaginationConstant
import org.smartregister.fhircore.engine.util.DispatcherProvider
import org.smartregister.fhircore.engine.util.extension.due
import org.smartregister.fhircore.engine.util.extension.extractAddress
Expand All @@ -85,7 +84,7 @@ class PatientRepository
constructor(
@ApplicationContext val context: Context,
override val fhirEngine: FhirEngine,
override val domainMapper: AncItemMapper,
override val dataMapper: AncItemMapper,
val dispatcherProvider: DispatcherProvider
) : RegisterRepository<Anc, PatientItem> {

Expand All @@ -106,8 +105,8 @@ constructor(
filterBy(registerConfig.primaryFilter!!)
registerConfig.secondaryFilter?.let { filterBy(it) }

count = if (loadAll) countAll().toInt() else PaginationUtil.DEFAULT_PAGE_SIZE
from = pageNumber * PaginationUtil.DEFAULT_PAGE_SIZE
count = if (loadAll) countAll().toInt() else PaginationConstant.DEFAULT_PAGE_SIZE
from = pageNumber * PaginationConstant.DEFAULT_PAGE_SIZE
}
.distinctBy { it.subject.extractId() }

Expand All @@ -125,7 +124,7 @@ constructor(

val carePlans = searchCarePlan(it.logicalId)
val conditions = searchCondition(it.logicalId)
domainMapper.mapToDomainModel(Anc(it, head, conditions, carePlans))
dataMapper.transformInputToOutputModel(Anc(it, head, conditions, carePlans))
}
}
}
Expand Down Expand Up @@ -259,7 +258,9 @@ constructor(
}

fun fetchCarePlanItem(carePlan: List<CarePlan>): List<CarePlanItem> =
carePlan.filter { it.due() || it.overdue() }.map { CarePlanItemMapper.mapToDomainModel(it) }
carePlan.filter { it.due() || it.overdue() }.map {
CarePlanItemMapper.transformInputToOutputModel(it)
}

suspend fun fetchCarePlan(patientId: String): List<CarePlan> =
withContext(dispatcherProvider.io()) {
Expand Down Expand Up @@ -385,10 +386,8 @@ constructor(
withContext(dispatcherProvider.io()) {
val carePlanId = it.logicalId
val tasks =
fhirEngine.search<Task> {
apply { filter(Task.FOCUS, { value = "CarePlan/$carePlanId" }) }.getQuery()
}
if (!tasks.isNullOrEmpty()) {
fhirEngine.search<Task> { filter(Task.FOCUS, { value = "CarePlan/$carePlanId" }) }
if (tasks.isNotEmpty()) {
task = tasks[0]
listCarePlan.add(
UpcomingServiceItem(
Expand All @@ -408,7 +407,7 @@ constructor(
val listCarePlan = arrayListOf<EncounterItem>()
if (encounters.isNotEmpty()) {
for (i in encounters.indices) {
listCarePlan.add(EncounterItemMapper.mapToDomainModel(encounters[i]))
listCarePlan.add(EncounterItemMapper.transformInputToOutputModel(encounters[i]))
}
}
return listCarePlan
Expand Down Expand Up @@ -457,7 +456,7 @@ constructor(
val bmiEncounter = loadConfig(Template.BMI_ENCOUNTER, Encounter::class.java, bmiEncounterData)
fhirEngine.create(bmiEncounter)

val bmiWeightObservationRecordId = ResourceType.Observation.generateUniqueId()
val bmiWeightObservationRecordId = generateUniqueId()
val bmiWeightObservationData =
buildBmiConfigData(
patientId = patientId,
Expand All @@ -471,7 +470,7 @@ constructor(
loadConfig(Template.BMI_PATIENT_WEIGHT, Observation::class.java, bmiWeightObservationData)
fhirEngine.create(bmiWeightObservation)

val bmiHeightObservationRecordId = ResourceType.Observation.generateUniqueId()
val bmiHeightObservationRecordId = generateUniqueId()
val bmiHeightObservationData =
buildBmiConfigData(
patientId = patientId,
Expand All @@ -485,7 +484,7 @@ constructor(
loadConfig(Template.BMI_PATIENT_HEIGHT, Observation::class.java, bmiHeightObservationData)
fhirEngine.create(bmiHeightObservation)

val bmiObservationRecordId = ResourceType.Observation.generateUniqueId()
val bmiObservationRecordId = generateUniqueId()
val bmiObservationData =
buildBmiConfigData(
patientId = patientId,
Expand Down Expand Up @@ -538,7 +537,7 @@ constructor(
}

fun setAncItemMapperType(ancItemMapperType: AncItemMapper.AncItemMapperType) {
domainMapper.setAncItemMapperType(ancItemMapperType)
dataMapper.setAncItemMapperType(ancItemMapperType)
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,24 @@ package org.smartregister.fhircore.anc.ui.anccare.details

import org.hl7.fhir.r4.model.CarePlan
import org.smartregister.fhircore.anc.data.model.CarePlanItem
import org.smartregister.fhircore.engine.data.domain.util.DomainMapper
import org.smartregister.fhircore.engine.domain.util.DataMapper
import org.smartregister.fhircore.engine.util.extension.due
import org.smartregister.fhircore.engine.util.extension.overdue

object CarePlanItemMapper : DomainMapper<CarePlan, CarePlanItem> {
object CarePlanItemMapper : DataMapper<CarePlan, CarePlanItem> {

override fun mapToDomainModel(dto: CarePlan): CarePlanItem {
override fun transformInputToOutputModel(inputModel: CarePlan): CarePlanItem {
var typeString = ""
for (j in dto.activity.indices) {
if (dto.activity[j].hasDetail())
if (dto.activity[j].detail.hasDescription()) typeString = dto.activity[j].detail.description
for (j in inputModel.activity.indices) {
if (inputModel.activity[j].hasDetail())
if (inputModel.activity[j].detail.hasDescription())
typeString = inputModel.activity[j].detail.description
}
return CarePlanItem(
carePlanIdentifier = dto.id,
carePlanIdentifier = inputModel.id,
title = typeString,
due = dto.due(),
overdue = dto.overdue()
due = inputModel.due(),
overdue = inputModel.overdue()
)
}
}
Loading