1. Başlamadan önce
Neler oluşturacaksınız?
Bu codelab'de, Yapılandırılmış Veri Yakalama Kitaplığı ile Android uygulaması geliştirmeyi öğreneceksiniz. Uygulamanız, FHIR anketlerini ve yanıtlarını oluşturup işlemek için yapılandırılmış veri yakalama kitaplığını kullanır.
Neler öğreneceksiniz?
- Yapılandırılmış Veri Yakalama Kitaplığı'nı Android uygulamanıza entegre etme
- Anket nasıl görüntülenir?
QuestionnaireResponse
olarak yanıt almaQuestionnaireResponse
öğesinden FHIR kaynaklarını ayıklama
Gerekenler
- Android Studio'nun (v4.1.2+) yeni sürümü
- Android Emulator veya fiziksel bir Android cihaz
- Örnek kod
- Kotlin'de Android uygulaması geliştirmeyle ilgili temel bilgiler
Bu codelab, Yapılandırılmış Veri Yakalama Kitaplığı'na odaklanmıştır. Alakalı olmayan kavramlar ve kod blokları işaretlenmiştir ve yalnızca kopyalayıp yapıştırmanız için kullanımınıza sunulmuştur. Daha önce Android uygulamaları geliştirmediyseniz ilk uygulamanızı oluşturarak başlayabilirsiniz.
2. Hazırlanın
Kodu İndirin
Bu codelab'in kodunu indirmek için Android FHIR SDK deposunu klonlayın: git clone https://github.com/google/android-fhir.git
Bu codelab için başlangıç projesi codelabs/datacapture
konumunda bulunuyor.
Uygulamayı Android Studio'ya aktarma
Başlangıç uygulamasını Android Studio'ya aktararak başlayalım.
Android Studio'yu açın, Import Project (Gradle, Eclipse ADT vb.) seçeneğini belirleyin ve daha önce indirdiğiniz kaynak kodundan codelabs/datacapture
klasörünü seçin.
Başlangıç uygulamasını çalıştırma
Projenizi Android Studio'ya aktardığınıza göre, uygulamayı ilk kez çalıştırmaya hazırsınız.
Android cihazınızı USB ile ana makinenize bağlayın veya Android Studio emülatörünü başlatın, ardından Android Studio araç çubuğunda Çalıştır'ı () tıklayın.
Gördüğünüz gibi burada çok fazla bir şey yok. Şimdi doğrudan uygulamanızda bir anket görüntülemeye geçelim.
3. Projeye Yapılandırılmış Veri Yakalama Kitaplığı ekleyin
Yapılandırılmış Veri Yakalama Kitaplığı için bağımlılıkları ekleme
Yapılandırılmış Veri Yakalama Kitaplığı bağımlılıkları, Yapılandırılmış Veri Yakalama Kitaplığı'nı uygulamanıza entegre etmenize olanak tanır. Projenizin app/build.gradle.kts
dosyasının sonuna aşağıdaki satırları ekleyin:
dependencies {
// ...
implementation("com.google.android.fhir:data-capture:1.0.0")
implementation("androidx.fragment:fragment-ktx:1.5.5")
}
Projenizi Gradle dosyalarıyla senkronize etme
Tüm bağımlılıkların uygulamanızda kullanılabildiğinden emin olmak için bu noktada projenizi gradle dosyalarıyla senkronize etmeniz gerekir.
Android Studio araç çubuğundan Projeyi Gradle Dosyalarıyla Senkronize Et'i () seçin. Bağımlılıkların doğru şekilde çalışıp çalışmadığını kontrol etmek için uygulamayı da tekrar çalıştırabilirsiniz.
4. Anket Görüntüleme
Bu adımda, başlangıç uygulamasına FragmentContainerView
içinde anket oluşturma işlevini ekleyeceksiniz.
Android Studio da gerekli içe aktarma işlemlerini eklemenizi ister:
androidx.core.os.bundleOf
androidx.fragment.app.add
androidx.fragment.app.commit
android.util.Log
com.google.android.fhir.datacapture.QuestionnaireFragment
1. Adım: FragmentContainerView
ekleyin
Uygulamanın düzenine FragmentContainerView
ekleyin. Daha sonra oluşturacağınız QuestionnaireFragment
burada gösterilir.
activity_main.xml
dosyasını açın (res > düzen > activity_main.xml).- Düzen Düzenleyici'nin sağ üst köşesinde Kod, Bölme ve Tasarım görünümleri seçeneklerini bulun.
- Kod görünümünü seçin.
.
TextView
gerekmez, bu nedenle silin.<TextView
ile kapanış olan/>
arasındaki her şeyi sildiğinizden emin olun.ConstraintLayout
içine birFragmentContainerView
ekleyin.activity_main.xml
dosyanız şuna benzer bir görünümde olacaktır:<?xml version="1.0" encoding="utf-8" ?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <androidx.fragment.app.FragmentContainerView android:id="@+id/fragment_container_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
2. Adım: FragmentContainerView
için bir QuestionnaireFragment
ekleyin
QuestionnaireFragment
öğesinin oluşturulması için JSON kodlu bir FHIR Anketi gerekir. Anket küçük olduğundan (512 KB'tan küçük) parçayı oluşturmak için kullanılacak Bundle
bağımsız değişkene String
olarak ekleyeceksiniz. Daha büyük anketler, performansı artırmak amacıyla URI
olarak sağlanmalıdır.
İsterseniz questionnaire.json
dosyasına bakabilirsiniz, ancak Yapılandırılmış Veri Yakalama Kitaplığı'nın avantajlarından biri, anketi oluşturmak için FHIR Anketi'nin yapısını (veya FHIR ile ilgili herhangi bir şeyi) bilmenize gerek olmamasıdır. Codelab'de bu dosyayı daha yakından inceleyeceğiz.
Oluşturucu'yu kullanarak bir QuestionnaireFragment
oluşturun ve belirleyici işleviyle anketi ayarlayın. QuestionnaireFragment
öğesini düzen kapsayıcısında görüntülemek için FragmentManager
kullanarak bir FragmentTransaction
oluşturun.
MainActivity.kt
uygulamasını açın ve aşağıdaki kodu MainActivity
sınıfına ekleyin:
// Step 2: Configure a QuestionnaireFragment
questionnaireJsonString = getStringFromAssets("questionnaire.json")
if (savedInstanceState == null) {
supportFragmentManager.commit {
setReorderingAllowed(true)
add(
R.id.fragment_container_view,
QuestionnaireFragment.builder().setQuestionnaire(questionnaireJsonString!!).build()
)
}
}
Parçaları kullanma hakkında daha fazla bilgi edinin.
Android Studio araç çubuğunda Çalıştır () seçeneğini tıklayarak codelab'i çalıştıralım. Şuna benzer bir kod görürsünüz:
Ankette gezinin ve birkaç yanıt girmeyi deneyin. Boole, metin ve tarih gibi birkaç farklı yanıt widget'ı vardır. Bu widget'lar, orijinal FHIR anketindeki temel türe göre otomatik olarak oluşturulur.
Teknik olarak anket oluşturmak için tek yapmanız gereken bu. Tebrikler!
Kullanıcıların girdiği yanıtları göremiyorsanız anket çok da yararlı olmaz. Anket Yanıtı almanın bir sonraki adımına geçelim!
5. Anket Yanıtı Alma
Önceki adımlarda, uygulamanızda bir FHIR anketi oluşturdunuz.
Bu bölümde, anketteki yanıtları QuestionnaireResponse olarak göreceksiniz.
submitQuestionnaire()
yöntemini bulun ve aşağıdaki kodu ekleyin:
// Get a questionnaire response
val fragment = supportFragmentManager.findFragmentById(R.id.fragment_container_view)
as QuestionnaireFragment
val questionnaireResponse = fragment.getQuestionnaireResponse()
// Print the response to the log
val jsonParser = FhirContext.forCached(FhirVersionEnum.R4).newJsonParser()
val questionnaireResponseString =
jsonParser.encodeResourceToString(questionnaireResponse)
Log.d("response", questionnaireResponseString)
Anket yanıtını almak için daha önce oluşturduğunuz anket parçasını alıp getQuestionnaireResponse()
yöntemini kullanırsınız. Bu, doğrudan veya Android FHIR SDK'sının diğer bölümleriyle kullanabileceğiniz bir HAPI FHIR QuestionnaireResponse
hatası döndürür. Bu codelab, günlükte görüntülenecek bir JSON dizesine dönüştürmek için diğer HAPI FHIR kitaplıklarını kullanır.
Uygulamayı son değişikliklerinizle yeniden oluşturmak için tekrar çalıştırın. Çalıştıktan sonra ankete bazı bilgileri girin ve Gönder'e dokunun. Günlükte, QuestionnaireResponse
öğesini JSON olarak içeren bir mesaj göreceksiniz.
D/response: {"resourceType":"QuestionnaireResponse","item":[{"linkId":"PR","text":"Patient information","item":[{"linkId":"PR-name","text":"Name","item":[{"linkId":"PR-name-given","text":"First Name","answer":[{"valueString":"Dani"}]},{"linkId":"PR-name-family","text":"Family Name","answer":[{"valueString":"Lee"}]}]},{"linkId":"PR-birthdate","text":"Date of Birth","answer":[{"valueDate":"1990-02-14"}]},{"linkId":"PR-id","text":"Identifying information","item":[{"linkId":"PR-name-id-url"},{"linkId":"PR-name-id","text":"Patient Id","answer":[{"valueString":"12345"}]}]}]}]}
6. Bir QuestionnaireResponse
Başlangıç projesine dahil edilen anket, basit bir hasta kayıt akışı içindir. Bu nedenle, anket yanıtlarını kullanarak bu yanıtları temel alan bir FHIR Hasta kaynağı oluşturmak isteyebilirsiniz. Bir anket yanıtından FHIR kaynaklarına dönüşüme veri ayıklama adı verilir. Bunu, Yapılandırılmış Veri Yakalama Kitaplığı'nın ResourceMapper
sınıfıyla yapabiliriz.
Veri ayıklama işlemi gerçekleştirmek için anketiniz, veri ayıklama işleminin nasıl yapılacağı hakkında bilgi içerecek şekilde yazılmalıdır. Neyse ki, örnek anket zaten Tanıma dayalı ayıklama için ayarlanmış.
submitQuestionnaire()
yöntemini bulun ve aşağıdaki kodu ekleyin:
lifecycleScope.launch {
val questionnaire =
jsonParser.parseResource(questionnaireJsonString) as Questionnaire
val bundle = ResourceMapper.extract(questionnaire, questionnaireResponse)
Log.d("extraction result", jsonParser.encodeResourceToString(bundle))
}
ResourceMapper.extract()
için, önceki anket JSON dizesini ayrıştırarak oluşturabileceğiniz bir HAPI FHIR Anketi ve daha önce sahip olduğumuz bir QuestionnaireResponse
gerekir. Çıkarılan bir veya daha fazla kaynağı (bu örnekte tek bir hasta kaynağı) içeren bir HAPI FHIR işlemi Paketi döndürür.
Uygulamayı son değişikliklerinizle yeniden oluşturmak için tekrar çalıştırın. Çalıştığında bazı bilgileri girip Gönder'e dokunun. Günlükte, çıkarılan FHIR paketinin JSON gösterimini içeren bir mesaj extraction result
göreceksiniz.
D/extraction result: {"resourceType":"Bundle","type":"transaction","entry":[{"resource":{"resourceType":"Patient","identifier":[{"value":"12345"}],"name":[{"family":"Lee","given":["Dani"]}],"birthDate":"1990-02-14"}}]}
7. Tebrikler!
Uygulamanızda FHIR anketlerini ve yanıtlarını işlemek için Yapılandırılmış Veri Yakalama Kitaplığı'nı kullandınız:
- Anket Görüntüleme
- Anket Yanıtı Alma
QuestionnaireResponse
öğesinden FHIR kaynaklarını çıkarın
Uygulamanızı hemen kullanmaya başlamak için ihtiyacınız olan bu kadar.
İlerledikçe, başvurunuz boyunca FHIR kaynaklarıyla daha farklı şekillerde çalışmak isteyebilirsiniz. FHIR kaynaklarını uygulamanızda yerel olarak depolayıp yönetmeyi ve verileri uzak bir FHIR sunucusuyla senkronize etmeyi öğrenmek için Android FHIR SDK'sının FHIR Engine Kitaplığı'na göz atın.
İşlediğimiz konular
- Android uygulamanıza Yapılandırılmış Veri Yakalama Kitaplığı ekleme
QuestionnaireFragment
veResourceMapper
, FHIR anketleriyle çalışmak için nasıl kullanılır?
Sonraki Adımlar
- Yapılandırılmış Veri Yakalama Kitaplığı ile ilgili dokümanları keşfedin
- Oluşturulan anketlerin görünümünü ve tarzını özelleştirme
- Yapılandırılmış Veri Yakalama Kitaplığı'nı kendi Android uygulamanıza uygulama